go/types.operand.mode (field)

275 uses

	go/types (current package)
		api.go#L440: 	x := operand{mode: value, typ: V}
		api.go#L451: 	x := operand{mode: value, typ: V}
		assignments.go#L23: 	switch x.mode {
		assignments.go#L44: 				x.mode = invalid
		assignments.go#L61: 			x.mode = invalid
		assignments.go#L101: 		x.mode = invalid
		assignments.go#L106: 	if x.mode == invalid || x.typ == Typ[Invalid] || lhs.typ == Typ[Invalid] {
		assignments.go#L114: 	if x.mode != constant_ {
		assignments.go#L129: 	if x.mode == invalid {
		assignments.go#L137: 	if x.mode == invalid || x.typ == Typ[Invalid] || lhs.typ == Typ[Invalid] {
		assignments.go#L160: 	if x.mode == invalid {
		assignments.go#L168: 	if x.mode == invalid || x.typ == Typ[Invalid] {
		assignments.go#L180: 		if x.mode == invalid {
		assignments.go#L209: 	if z.mode == invalid || z.typ == Typ[Invalid] {
		assignments.go#L215: 	switch z.mode {
		assignments.go#L224: 			if op.mode == mapindex {
		assignments.go#L234: 	if x.mode == invalid {
		assignments.go#L329: 			if x.mode == invalid {
		assignments.go#L383: 			if x.mode == invalid {
		builtins.go#L55: 			if x.mode == invalid {
		builtins.go#L116: 				if x.mode == invalid {
		builtins.go#L125: 					x.mode = value
		builtins.go#L150: 		x.mode = value
		builtins.go#L164: 				if x.mode == constant_ {
		builtins.go#L232: 		x.mode = mode
		builtins.go#L252: 		x.mode = novalue
		builtins.go#L261: 		if y.mode == invalid {
		builtins.go#L291: 			if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L306: 		if x.mode == invalid || y.mode == invalid {
		builtins.go#L339: 		if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L342: 			x.mode = value
		builtins.go#L345: 		if check.Types != nil && x.mode != constant_ {
		builtins.go#L357: 		if y.mode == invalid {
		builtins.go#L379: 		x.mode = value
		builtins.go#L405: 		if x.mode == invalid {
		builtins.go#L410: 		if x.mode == invalid {
		builtins.go#L414: 		x.mode = novalue
		builtins.go#L425: 			if x.mode == constant_ {
		builtins.go#L438: 				if x.mode == invalid {
		builtins.go#L471: 		if x.mode == constant_ {
		builtins.go#L478: 			x.mode = value
		builtins.go#L481: 		if check.Types != nil && x.mode != constant_ {
		builtins.go#L528: 		x.mode = value
		builtins.go#L542: 		x.mode = value
		builtins.go#L564: 		if x.mode == invalid {
		builtins.go#L568: 		x.mode = novalue
		builtins.go#L584: 				if x.mode == invalid {
		builtins.go#L592: 		x.mode = novalue
		builtins.go#L599: 		x.mode = value
		builtins.go#L613: 		if x.mode == invalid {
		builtins.go#L623: 		x.mode = value
		builtins.go#L632: 		if x.mode == invalid {
		builtins.go#L637: 			x.mode = value
		builtins.go#L642: 			x.mode = constant_
		builtins.go#L660: 		if x.mode == invalid {
		builtins.go#L690: 			if x.mode == variable || indirect {
		builtins.go#L701: 			x.mode = value
		builtins.go#L706: 			x.mode = constant_
		builtins.go#L715: 		if x.mode == invalid {
		builtins.go#L720: 			x.mode = value
		builtins.go#L725: 			x.mode = constant_
		builtins.go#L750: 		x.mode = value
		builtins.go#L760: 		if x.mode != constant_ || !isBoolean(x.typ) {
		builtins.go#L782: 			x.mode = novalue
		call.go#L26: 		x.mode = invalid
		call.go#L37: 		x.mode = invalid
		call.go#L46: 			x.mode = invalid
		call.go#L59: 	x.mode = value
		call.go#L104: 			assert(x.mode == value)
		call.go#L116: 	switch x.mode {
		call.go#L125: 		if x.mode == invalid {
		call.go#L129: 		x.mode = invalid
		call.go#L135: 			if x.mode != invalid {
		call.go#L159: 			x.mode = invalid
		call.go#L163: 		if x.mode != invalid && x.mode != constant_ {
		call.go#L171: 	cgocall := x.mode == cgofunc
		call.go#L177: 		x.mode = invalid
		call.go#L190: 			x.mode = invalid
		call.go#L201: 			x.mode = invalid
		call.go#L220: 		x.mode = novalue
		call.go#L223: 			x.mode = commaerr
		call.go#L225: 			x.mode = value
		call.go#L229: 		x.mode = value
		call.go#L237: 	if x.mode == value && sig.TypeParams().Len() > 0 && isParameterized(sig.TypeParams().list(), x.typ) {
		call.go#L238: 		x.mode = invalid
		call.go#L254: 		if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		call.go#L258: 				xlist[i] = &operand{mode: value, expr: e, typ: v.typ}
		call.go#L265: 		if allowCommaOk && (x.mode == mapindex || x.mode == commaok || x.mode == commaerr) {
		call.go#L266: 			x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
		call.go#L267: 			if x.mode == commaerr {
		call.go#L293: 		switch a.mode {
		call.go#L497: 				x.mode = constant_
		call.go#L501: 				x.mode = typexpr
		call.go#L504: 				x.mode = variable
		call.go#L510: 				x.mode = funcMode
		call.go#L513: 					x.mode = value
		call.go#L517: 				x.mode = builtin
		call.go#L530: 	switch x.mode {
		call.go#L545: 	obj, index, indirect = LookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel)
		call.go#L579: 				if obj, _, _ = LookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, changeCase); obj != nil {
		call.go#L593: 	if x.mode == typexpr {
		call.go#L631: 		x.mode = value
		call.go#L646: 			if x.mode == variable || indirect {
		call.go#L647: 				x.mode = variable
		call.go#L649: 				x.mode = value
		call.go#L672: 				if x.mode == variable {
		call.go#L703: 			x.mode = value
		call.go#L722: 	x.mode = invalid
		check.go#L408: 	switch x.mode {
		check.go#L424: 		check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
		check.go#L426: 		check.recordTypeAndValue(x.expr, x.mode, typ, val)
		conversions.go#L17: 	constArg := x.mode == constant_
		conversions.go#L65: 		x.mode = value // type parameters are not constants
		conversions.go#L69: 		x.mode = value
		conversions.go#L88: 		x.mode = invalid
		conversions.go#L106: 		} else if x.mode == constant_ && isInteger(x.typ) && allString(T) {
		expr.go#L91: 	assert(x.mode == constant_)
		expr.go#L159: 	if x.mode == invalid {
		expr.go#L166: 		if _, ok := unparen(e.X).(*ast.CompositeLit); !ok && x.mode != variable {
		expr.go#L168: 			x.mode = invalid
		expr.go#L171: 		x.mode = value
		expr.go#L179: 			x.mode = invalid
		expr.go#L185: 			x.mode = invalid
		expr.go#L190: 			x.mode = invalid
		expr.go#L194: 		x.mode = commaok
		expr.go#L201: 		x.mode = invalid
		expr.go#L205: 	if x.mode == constant_ {
		expr.go#L220: 	x.mode = value
		expr.go#L421: 		x.mode = invalid
		expr.go#L433: 	assert(x.mode == constant_)
		expr.go#L587: 		if c.mode == invalid {
		expr.go#L613: 		x.mode = invalid
		expr.go#L633: 	if x.mode == invalid || isTyped(x.typ) || target == Typ[Invalid] {
		expr.go#L653: 		if x.mode == constant_ {
		expr.go#L809: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L814: 		x.mode = value
		expr.go#L850: 	x.mode = invalid
		expr.go#L900: 	if x.mode == constant_ {
		expr.go#L910: 		x.mode = invalid
		expr.go#L919: 	if y.mode == constant_ {
		expr.go#L924: 			x.mode = invalid
		expr.go#L932: 			if y.mode == invalid {
		expr.go#L933: 				x.mode = invalid
		expr.go#L943: 				x.mode = invalid
		expr.go#L950: 			if y.mode == invalid {
		expr.go#L951: 				x.mode = invalid
		expr.go#L956: 			x.mode = invalid
		expr.go#L961: 	if x.mode == constant_ {
		expr.go#L962: 		if y.mode == constant_ {
		expr.go#L977: 				x.mode = invalid
		expr.go#L1024: 			x.mode = value
		expr.go#L1032: 		x.mode = invalid
		expr.go#L1036: 	x.mode = value
		expr.go#L1068: 	if x.mode == invalid {
		expr.go#L1071: 	if y.mode == invalid {
		expr.go#L1072: 		x.mode = invalid
		expr.go#L1103: 		if x.mode == invalid {
		expr.go#L1107: 		if y.mode == invalid {
		expr.go#L1108: 			x.mode = invalid
		expr.go#L1132: 		x.mode = invalid
		expr.go#L1137: 		x.mode = invalid
		expr.go#L1143: 		if (x.mode == constant_ || allInteger(x.typ)) && y.mode == constant_ && constant.Sign(y.val) == 0 {
		expr.go#L1145: 			x.mode = invalid
		expr.go#L1150: 		if x.mode == constant_ && y.mode == constant_ && isComplex(x.typ) {
		expr.go#L1155: 				x.mode = invalid
		expr.go#L1161: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L1178: 	x.mode = value
		expr.go#L1222: 	if x.mode == invalid || x.mode == novalue {
		expr.go#L1238: 		x.mode = invalid
		expr.go#L1249: 	x.mode = invalid
		expr.go#L1285: 		if x.mode == invalid {
		expr.go#L1310: 			x.mode = value
		expr.go#L1480: 				if x.mode == invalid {
		expr.go#L1483: 				if x.mode == constant_ {
		expr.go#L1527: 		x.mode = value
		expr.go#L1543: 		if x.mode == invalid {
		expr.go#L1549: 		if x.mode == invalid {
		expr.go#L1555: 		if x.mode == invalid {
		expr.go#L1579: 		x.mode = commaok
		expr.go#L1587: 		switch x.mode {
		expr.go#L1610: 			x.mode = variable
		expr.go#L1616: 		if x.mode == invalid {
		expr.go#L1626: 		if x.mode == invalid {
		expr.go#L1637: 		x.mode = typexpr
		expr.go#L1654: 	x.mode = invalid
		expr.go#L1741: 	if modeset&(1<<x.mode) != 0 {
		expr.go#L1744: 		switch x.mode {
		expr.go#L1762: 		x.mode = invalid
		expr.go#L1768: 	if x.mode == value {
		expr.go#L1777: 			x.mode = invalid
		index.go#L22: 	switch x.mode {
		index.go#L29: 		x.mode = invalid
		index.go#L33: 			x.mode = typexpr
		index.go#L46: 	if x.mode == invalid {
		index.go#L57: 			if x.mode == constant_ {
		index.go#L63: 			x.mode = value
		index.go#L70: 		if x.mode != variable {
		index.go#L71: 			x.mode = value
		index.go#L79: 			x.mode = variable
		index.go#L85: 		x.mode = variable
		index.go#L91: 			x.mode = invalid
		index.go#L98: 		x.mode = mapindex
		index.go#L123: 				if x.mode != variable {
		index.go#L165: 					x.mode = invalid
		index.go#L172: 				x.mode = mapindex
		index.go#L180: 			x.mode = mode
		index.go#L188: 		x.mode = invalid
		index.go#L194: 		x.mode = invalid
		index.go#L211: 	if x.mode == invalid {
		index.go#L221: 		x.mode = invalid
		index.go#L232: 				x.mode = invalid
		index.go#L236: 			if x.mode == constant_ {
		index.go#L249: 		if x.mode != variable {
		index.go#L251: 			x.mode = invalid
		index.go#L270: 		x.mode = invalid
		index.go#L274: 	x.mode = value
		index.go#L279: 		x.mode = invalid
		index.go#L357: 	if x.mode != constant_ {
		index.go#L377: 	if x.mode == invalid {
		index.go#L383: 	if x.mode == invalid {
		index.go#L393: 	if x.mode == constant_ {
		infer.go#L248: 			if arg.mode == invalid {
		operand.go#L54: 	mode operandMode
		operand.go#L108: 	if x.mode == value && x.typ == Typ[UntypedNil] {
		operand.go#L118: 		switch x.mode {
		operand.go#L136: 	switch x.mode {
		operand.go#L152: 	buf.WriteString(operandModeString[x.mode])
		operand.go#L155: 	if x.mode == constant_ {
		operand.go#L214: 		x.mode = invalid
		operand.go#L218: 	x.mode = constant_
		operand.go#L225: 	return x.mode == value && x.typ == Typ[UntypedNil]
		operand.go#L235: 	if x.mode == invalid || T == Typ[Invalid] {
		stmt.go#L242: 		if x.mode == invalid || v.mode == invalid {
		stmt.go#L246: 		if v.mode == invalid {
		stmt.go#L252: 		if res.mode == invalid {
		stmt.go#L255: 		if v.mode != constant_ {
		stmt.go#L398: 		switch x.mode {
		stmt.go#L418: 		if ch.mode == invalid || val.mode == invalid {
		stmt.go#L451: 		if x.mode == invalid {
		stmt.go#L461: 		if x.mode == invalid {
		stmt.go#L493: 			if x.mode == invalid {
		stmt.go#L568: 		if x.mode != invalid && !allBoolean(x.typ) {
		stmt.go#L595: 			if x.mode != invalid && !Comparable(x.typ) && !hasNil(x.typ) {
		stmt.go#L597: 				x.mode = invalid
		stmt.go#L602: 			x.mode = constant_
		stmt.go#L684: 		if x.mode == invalid {
		stmt.go#L806: 			if x.mode != invalid && !allBoolean(x.typ) {
		stmt.go#L831: 		if x.mode != invalid {
		stmt.go#L896: 					x.mode = value
		stmt.go#L922: 					x.mode = value
		typexpr.go#L23: 	x.mode = invalid
		typexpr.go#L36: 				x.mode = typexpr
		typexpr.go#L96: 		x.mode = constant_
		typexpr.go#L103: 		x.mode = typexpr
		typexpr.go#L116: 		x.mode = variable
		typexpr.go#L120: 		x.mode = value
		typexpr.go#L124: 		x.mode = builtin
		typexpr.go#L127: 		x.mode = value
		typexpr.go#L246: 		switch x.mode {
		typexpr.go#L263: 		switch x.mode {
		typexpr.go#L516: 	if x.mode != constant_ {
		typexpr.go#L517: 		if x.mode != invalid {